using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Joy.Erp.BasicArchives.Core.Filters;

namespace Joy.Erp.BasicArchives.Suppliers
{
    public interface ISupplierTypeAppService
    {
        Task<SupplierTypeDto> GetAsync(Guid id);
        Task<SupplierTypeDto> FindAsync(string filter);
        Task<SupplierTypeDto> FindBySourceKeyAsync(string sourceKey, string sourceType);
        Task<PagedResultDto<SupplierTypeDto>> GetListAsync(FilterRequestDto input);
        Task<PagedResultDto<SupplierTypeDto>> QueryAsync(FilterGroupRequestDto input);
        Task<ListResultDto<SupplierTypeDto>> GetChildrenAsync(Guid? parentId, bool recursive = false);
        Task<SupplierTypeDto> CreateAsync(SupplierTypeCreateDto input);
        Task<SupplierTypeDto> UpdateAsync(Guid id, SupplierTypeUpdateDto input);
        Task DeleteAsync(Guid id);
    }
}